iT邦幫忙

2

無伺服器計算架構的優勢

  • 分享至 

  • xImage
  •  

雲端計算的快速演進

雲端計算是一個快速發展的領域。雲端計算的各種創新方面來來去去,其中一些獲得了更多的關注和採用。在這些廣泛採用的創新中,無伺服器計算架構已成為一個改變遊戲規則的存在。

但「無伺服器」到底是什麼意思?與名稱可能暗示的相反,「無伺服器」並不意味著沒有伺服器。相反,它代表了一種責任的轉移——從開發者轉移到雲端供應商,由他們來處理伺服器管理的複雜性。通過抽象化這些複雜性,無伺服器架構讓開發者能夠專注於構建強大的應用程式。

無伺服器架構源於傳統的基於伺服器的模型,但它徹底改變了軟體開發團隊對應用程式部署和擴展的思考方式。無伺服器提供了一種獨特的成本效益、可擴展性和開發者便利性的結合。難怪無伺服器對軟體組織和開發者來說是一個有吸引力的選擇。

在這篇部落格文章中,我們將深入探討無伺服器計算架構的世界。我們將了解它的運作方式,考慮其優勢和局限性,並談談如何開始使用無伺服器。

我們將特別關注 Akamai 的無伺服器計算產品,例如創新的 Akamai EdgeWorkers。

在開始探索之前,讓我們首先比較無伺服器架構與傳統的伺服器架構。

與傳統架構的比較

傳統的基於伺服器的架構圍繞著手動管理和操作伺服器。在這種方法中,開發者必須積極參與解決應用程式託管和工作負載管理的問題。這種傳統架構需要持續的(通常是人為主導的)監控和管理,以確保伺服器環境安全、高效且能夠處理負載需求。

當我們將這種歷史方法與無伺服器架構進行對比時,我們可以清楚地看到雲原生計算的進步帶來的顯著優勢。

維護與管理

在傳統的伺服器架構中,管理整個伺服器生命週期的負擔落在企業身上——特別是工程師身上。這些管理責任包括:

  • 配置硬體,例如實體伺服器、虛擬機器或 API 閘道

  • 處理操作系統和軟體更新

  • 應用安全補丁

無伺服器架構將這些責任轉移給雲端平台供應商(例如 Google Cloud Platform、Amazon
Web Services 或 Akamai)。開發者不再需要關注這些問題,他們可以專注於編寫代碼。

擴展與靈活性

傳統的伺服器架構通常需要手動擴展。手動擴展要求組織預測需求。這可能意味著預先配置資源以應對增加的負載,也可能意味著在過度負載導致可用性問題後快速配置更多資源。

無論哪種方式,結果對企業來說都不是最優的。過度配置資源會導致浪費和成本高昂的未充分利用,而配置不足則會導致性能不佳和用戶體驗下降。

相比之下,無伺服器計算提供自動擴展。雲端供應商已經實施了自動化措施,能夠實時調整資源以匹配需求。這確保了資源的最佳使用,而無需手動干預。對於具有波動工作負載或不一致負載需求的應用程式,無伺服器的靈活性帶來了顯著的優勢。

成本影響

傳統伺服器的定價結構大多是固定的;企業為他們註冊的伺服器付費,無論這些伺服器是否被充分利用。要降低傳統伺服器的成本,用戶需要監控資源使用情況,以確保他們沒有為不必要的資源付費。

另一方面,無伺服器模型提供了一種「按使用付費」的方法。當應用程式沒有用戶活動時,服務應用程式的硬體會停止運轉。計費基於實際資源使用情況,這可以顯著降低成本。

部署速度與敏捷性

將應用程式部署到傳統的伺服器架構可能是一個繁瑣的過程。設置和配置伺服器是一項複雜的任務,許多專注於代碼的開發者可能沒有相關的專業知識來完成。相反,他們轉向無伺服器架構,這簡化了部署並可以顯著加速開發和部署週期。

運營開銷

管理傳統伺服器可能需要大量的運營開銷。伺服器需要監控可用性、安全性和合規性。許多企業沒有額外的資源來處理這些問題。無伺服器架構將這些負擔轉移給雲端服務供應商。通過減少這些運營挑戰,無伺服器架構使企業能夠專注於創新和增長。

傳統的基於伺服器的架構提供了控制感和熟悉感,但這可能需要企業不願意或無法投入的資源和專業知識。無伺服器計算的方法帶來了許多企業重視的效率和敏捷性。通過過渡到無伺服器架構,組織可以減少運營任務,並讓開發者專注於創造價值和促進創新。

無伺服器架構的運作方式

為了更好地理解無伺服器計算帶來的效率和多功能性,讓我們專注於其內部運作。在本節中,我們將探討無伺服器架構的關鍵方面和組件。

功能即服務(FaaS)

無伺服器架構的一個常見用途是功能即服務(FaaS),由大多數雲端供應商提供(例如Google Cloud Functions、Microsoft Azure Functions、Akamai EdgeWorkers 或 Amazon 的 AWS Lambda 函數)。FaaS無伺服器技術允許開發者編寫和部署單個功能——一個小型、單一用途的代碼塊——該功能在特定事件觸發時按需執行。該功能被部署到無伺服器架構中,等待某些事件觸發。

事件觸發器幾乎可以是任何東西——從 HTTP 請求到網頁表單提交,再到接收 SMS 消息。在FaaS模型中,雲端供應商託管和管理功能。開發者只需編寫功能代碼並配置運行時觸發器,從而導致功能調用。

在 FaaS 使用案例中,資源使用是最小的,這使得 FaaS對企業非常有吸引力。計算資源僅在功能被調用和執行時使用(在許多情況下,可能只有幾秒鐘)。除了這些最小使用的計算資源外,還使用少量的雲端存儲來存儲功能代碼。

由於 FaaS是使用無伺服器計算架構的最知名方式,「無伺服器架構」和「無伺服器功能」這兩個術語實際上已經成為同義詞。

事件驅動的執行

無伺服器架構本質上是事件驅動的。無伺服器功能旨在響應特定觸發器或事件隊列中的活動。這意味著它們在事件發生之前保持閒置狀態,一旦事件發生,它們就會立即執行。執行功能所需的計算資源僅在必要時使用。這比傳統的伺服器模型更高效,在傳統模型中,伺服器不斷運行,即使沒有對其計算資源的需求。

幕後運作

當調用無伺服器功能時,雲端供應商會動態分配資源來執行該功能,管理以下問題:

  • 擴展資源以滿足需求

  • 負載平衡

  • 容錯能力

雲端供應商可能使用虛擬機器、容器化和容器編排技術(例如 Docker 和 Kubernetes)或其他資源。然而,所有這些與基礎設施相關的細節都在無伺服器框架中被抽象化了。

開發者只需專注於他們的編碼和調試工作流程。通常,他們的應用程式代碼不需要太多修改即可適應無伺服器執行。大多數主要編程框架和語言的開源庫(包括Node.js、Python、JavaScript、WebAssembly 和 Ruby)使得通過無伺服器部署變得簡單。DevOps 團隊可以使用他們的 CI/CD 管道來部署無伺服器功能代碼的更新版本。

典型使用案例

無伺服器架構有各種應用。常見的使用案例包括:

  • 促進 API 或後端即服務(BaaS)

  • 微服務

  • 任務自動化

  • 處理實時數據流

  • 網頁應用程式(前端和後端網頁應用程式)

  • 處理零星或不可預測的工作負載

自動擴展的能力和僅為使用的資源付費的特性,使得無伺服器架構對初創企業和大型企業都很有吸引力。

無伺服器架構的優勢

我們已經提到了無伺服器計算架構的許多優勢。總結一下,無伺服器架構提供了:

  • 成本效益:按使用付費的定價模型(您只需為無伺服器功能實際消耗的資源付費)對許多組織來說很有吸引力。

  • 可擴展性和靈活性:無伺服器架構自動調整計算資源以匹配需求,在高峰時段擴展,在低使用時段縮減。這種自動擴展和靈活性帶來了穩定的性能,無論使用情況如何波動,都無需手動干預。

  • 提高開發者生產力:您的軟體開發者不再需要處理基礎設施相關的管理任務。他們可以專注於編寫代碼和開發新功能。這提高了他們的生產力,加速了開發,並縮短了上市時間。

  • 減少運營開銷:無伺服器架構將運營問題(例如伺服器維護、補丁和安全)轉移給第三方服務供應商。組織可以將時間、人力資源和專業知識投入到更關鍵的業務事項上。

無伺服器計算與邊緣計算的優勢

邊緣計算是一種分佈式計算方法,將計算和數據存儲更靠近需要的位置(通常在地理上靠近終端用戶)。邊緣計算旨在提高響應時間並節省帶寬。邊緣計算可以使用無伺服器環境,在靠近終端用戶的資源上執行無伺服器功能。

將邊緣計算與無伺服器計算架構(例如 Akamai EdgeWorkers)結合,可以更高效地處理高容量的實時數據處理,並提供增強的用戶體驗。

無伺服器架構的局限性

儘管無伺服器計算架構提供了許多優勢,組織也應注意其局限性,包括:

  • 冷啟動問題:「冷啟動」問題指的是在功能一段時間不活動後調用無伺服器功能時所經歷的延遲,通常是由於初始化執行功能所需的計算資源。儘管許多無伺服器應用程式可能不會明顯受到影響,但冷啟動可能會影響需要極快響應時間的功能的性能。

  • 供應商鎖定:採用無伺服器架構通常意味著將自己綁定到特定雲端供應商的生態系統。轉移到不同的供應商可能需要對應用程式進行更改,從而導致可移植性挑戰。

  • 有限的控制和自定義:在無伺服器計算中,由於雲端供應商管理您的底層基礎設施,您對環境和硬體的控制較少。對於需要特定配置或自定義的組織或應用程式來說,這可能是一個缺點。

  • 安全問題:雲端供應商通常提供非常強大的安全性。然而,無伺服器計算中的共享責任模型需要清楚地了解哪些安全方面由無伺服器供應商管理,哪些方面由您作為無伺服器客戶管理。

無伺服器架構提供了許多優勢,但組織必須權衡這些優勢與潛在的局限性,例如冷啟動、供應商鎖定、有限的控制和安全問題。了解這些方面將幫助組織做出關於採用無伺服器解決方案的明智決策。

結論

無伺服器計算架構是雲端計算的一個方面,它徹底改變了我們對應用程式開發和部署的思考方式。通過抽象化基礎設施管理的複雜性,無伺服器方法提供了一種簡單且可擴展的解決方案,以按使用付費的定價模型啟動基礎設施。開發者可以專注於編寫代碼,而組織則避免了管理伺服器的運營開銷。

了解更多

Akamai EdgeWorkers允許企業將其無伺服器功能部署在靠近客戶的地方,為終端用戶帶來高性能和低延遲的體驗。要了解更多關於Akamai或立即註冊免費試用


圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
I.T. Wang
iT邦研究生 4 級 ‧ 2025-06-03 09:15:47

謝謝大大分享。
小弟也特地去查了一下wiki,原來這東西就是PaaS並行之有年。
我也不懂取名無伺服器運算的人,有何居心? 也不需要亂取XaaS什麼即服務,或亂縮寫,現代IT領域很多名詞只是為取而取,某些縮寫取了還很難念...
被問無伺服器是什麼? 喔喔就是PaaS啦! 那為什麼要取新的代名詞? 而且新名詞也達不到行銷目的、卻造成反效果。
任何模型只要存在服務用戶的架構,就不可能沒有「伺服器的角色」,管你是雲端地端、VM、API、應用程式?

終端用戶跟各位一樣也是人,用戶使用這些東西也會去嘗試了解這在幹嘛? 能解決我的問題或滿足我的需求嗎?
如果這些技術理論總是活在自己的世界與別人脫軌,就是失敗的產物。IT本質是服務,不是搞藝術搞抽象只要滿足自己。

我要留言

立即登入留言